// 在 project/code/meun.h 中
#ifndef _MEUN_H_
#define _MEUN_H_

#include "zf_common_typedef.h"
#include "zf_device_ips200_fb.h"
#include "zf_driver_gpio.h"

// 菜单表结构体定义
typedef struct {
    int id;
    int next;
    int prev;  // 添加 prev 成员
    int type;
    void (*current_operation)();
} Menu_table;

// 外部变量声明
extern bool start_flag;  // 起跑标志位
extern void (*current_operation_index)(void);  // 当前执行的操作函数指针

// 菜单初始化函数
void Menu_Init(void);

// 按键处理函数
void Menu_key_set(void);

// 图像菜单函数
void meun_fun0_image(void);
void fun1_image(void);
void fun2_image(void);

// PID菜单函数
void meun_fun0(void);
void meun_fun1(void);
void meun_fun2(void);
void meun_fun3(void);
void meun_fun4(void);
void meun_fun5(void);

// 电机菜单函数
void meun_fun0_motor(void);
void fun1_motor(void);
void fun2_motor(void);
void fun3_motor(void);
void fun4_motor(void);
void fun5_motor(void);
void fun6_motor(void);
void fun7_motor(void);
void fun8_motor(void);
void fun9_motor(void);
void fun10_motor(void);
void fun11_motor(void);
void fun12_motor(void);

// 起跑菜单函数
void meun_fun0_car_go(void);
void fun1_car_go(void);
void fun2_car_go(void);
void fun3_car_go(void);
void fun4_car_go(void);
void fun5_car_go(void);
void fun6_car_go(void);
void fun7_car_go(void);

// 参数调节函数
void Adjust_zhi(int i);
void Adjust_wan(void);
void Adjust_minn(void);
void Adjust_zhi_(int i);
void Adjust_wan_(void);
void Adjust_minn_(void);

// 起跑相关函数
void start_race(void);
void cancel_start(void);

// 基础功能函数
void fun0(void);
void fun1(void);
void fun2(void);
void fun3(void);
void fun4(void);
void fun5(void);
void fun6(void);
void fun7(void);
void fun8(void);
void fun9(void);
void fun10(void);
void fun11(void);
void fun12(void);
void fun13(void);

#endif // _MEUN_H_